#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define deb(x) cout << #x << "=" << x << endl
#define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
bool check(vector<ll>&v,ll mid,ll sum)
{
vector<ll>temp(mid);
for(ll i=0;i<mid;i++)
{
temp[i]=v[i];
}
bool val=true;
sort(temp.begin(),temp.end(),greater<ll>());
ll j=0;
for(ll i=0;i<(mid/2);i++)
{
ll maxi=max(temp[j],temp[j+1]);
sum-=maxi;
if(sum<0)
{
val=false;
break;
}
j+=2;
}
if(mid%2==1&&val==true){
sum-=temp[mid-1];
if(sum<0){
val=false;
}
}
if(val==true) return true;
else return false;
}
void solve()
{
ll n;cin>>n;
ll h;cin>>h;
vector<ll>a(n);
for(ll i=0;i<n;i++)cin>>a[i];
ll low=1;ll high=n;
ll ans=1;
while(low<=high)
{
ll mid=(low+high)/2;
if(check(a,mid,h)==true)
{
ans=mid;
low=mid+1;
}
else
{
high=mid-1;
}
}
cout<<ans<<endl;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
// precompute();
IOS;
ll T;
T=1;
// cin >> T;
while(T--){
solve();
}
return 0;
}
1351. Count Negative Numbers in a Sorted Matrix | 617. Merge Two Binary Trees |
1450. Number of Students Doing Homework at a Given Time | 700. Search in a Binary Search Tree |
590. N-ary Tree Postorder Traversal | 589. N-ary Tree Preorder Traversal |
1299. Replace Elements with Greatest Element on Right Side | 1768. Merge Strings Alternately |
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |